package com.yunhe.authority.domain.office;

import com.yunhe.authority.domain.authority.StationStaticData;
import com.yunhe.common.annotation.NameTitle;
import com.yunhe.common.util.DateTimeUtils;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import org.neo4j.ogm.annotation.NodeEntity;
import org.neo4j.ogm.annotation.Property;

import java.io.Serializable;
import java.util.Date;

/**
 * @author zhengbo
 * @date 2020/11/4 15:18
 */
@ApiModel(value = "Office", description = "厂房")
@NodeEntity
public class Office implements Comparable<Office>, Serializable {

    @ApiModelProperty(value = "ID")
    @Property(name = "id")
    private Long id;

    @ApiModelProperty(value = "楼栋号",required = false)
    @Property(name = "buildingNumber")
    private Long buildingNumber;

    @ApiModelProperty(value = "厂房编号",required = false)
    @Property(name = "officeName")
    private String officeName;

    @ApiModelProperty(value = "房源状态")
    @Property(name = "officeStatus")
    private String officeStatus;

    @ApiModelProperty(value = "房源状态Title")
    @NameTitle(nameCode = "officeStatus",nameType = "ITEM")
    private String officeStatusTitle;

    @ApiModelProperty(value = "房源类型")
    @Property(name = "housingType")
    private String housingType;

    @ApiModelProperty(value = "房源类型Title")
    @NameTitle(nameCode = "housingType",nameType = "ITEM")
    private String housingTypeTitle;

    @ApiModelProperty(value = "厂房(房源)名称")
    @Property(name = "officeTitle")
    private String officeTitle;

    @ApiModelProperty(value = "所属地区")
    @Property(name = "region")
    private String region;

    @ApiModelProperty(value = "所属地区Title")
    @NameTitle(nameCode = "Area",nameType = "ITEM")
    private String regionTitle;

    @ApiModelProperty(value = "归属园区")
    private String regionPark;

    @ApiModelProperty(value = "总建筑面积")
    @Property(name = "officeArea")
    private double officeArea;

    @ApiModelProperty(value = "厂房面积")
    @Property(name = "factoryArea")
    private double factoryArea;

    @ApiModelProperty(value = "办公面积")
    @Property(name = "workArea")
    private double workArea;

    @ApiModelProperty(value = "办公及门卫面积")
    @Property(name = "officeGuardArea")
    private double officeGuardArea;

    @ApiModelProperty(value = "空地面积")
    @Property(name = "blankArea")
    private double blankArea;

    /*@ApiModelProperty(value = "商业面积")
    @Property(name = "businessArea")
    private double businessArea;

    @ApiModelProperty(value = "公寓面积")
    @Property(name = "apartmentArea")
    private double apartmentArea;

    @ApiModelProperty(value = "计租面积")
    @Property(name = "rentalArea")
    private double rentalArea;*/

    @ApiModelProperty(value = "厂房层数")
    @Property(name = "officeFloorCount")
    private String officeFloorCount;

    @ApiModelProperty(value = "厂房层数Title")
    @NameTitle(nameCode = "officeFloorCount",nameType = "ITEM")
    private String officeFloorCountTitle;

    @ApiModelProperty(value = "厂房层高")
    @Property(name = "officeFloorHeight")
    private double officeFloorHeight;

    @ApiModelProperty(value = "厂房楼层")
    @Property(name = "officeFloor")
    private int officeFloor;

    @ApiModelProperty(value = "厂房层数2")
    @Property(name = "officeFloorCount2")
    private String officeFloorCount2;

    @ApiModelProperty(value = "厂房层数2Title")
    @NameTitle(nameCode = "officeFloorCount",nameType = "ITEM")
    private String officeFloorCount2Title;

    @ApiModelProperty(value = "厂房层高2")
    @Property(name = "officeFloorHeight2")
    private double officeFloorHeight2;

    @ApiModelProperty(value = "厂房楼层2")
    @Property(name = "officeFloor2")
    private int officeFloor2;

    @ApiModelProperty(value = "市场参考价")
    @Property(name = "marketReferencePrice")
    private double marketReferencePrice;

    @ApiModelProperty(value = "空地参考价")
    @Property(name = "blankReferencePrice")
    private double blankReferencePrice;

    @ApiModelProperty(value = "房源形态")
    @Property(name = "officeType")
    private String officeType;

    @ApiModelProperty(value = "房源形态Title")
    @NameTitle(nameCode = "officeType",nameType = "ITEM")
    private String officeTypeTitle;

    @ApiModelProperty(value = "空地报价")
    @Property(name = "blankQuote")
    private double blankQuote;

    @ApiModelProperty(value = "房源备案号")
    @Property(name = "officeRecordNo")
    private String officeRecordNo;

    @ApiModelProperty(value = "装修情况")
    @Property(name = "decoration")
    private String decoration;

    @ApiModelProperty(value = "装修情况Title")
    @NameTitle(nameCode = "decoration",nameType = "ITEM")
    private String decorationTitle;

    @ApiModelProperty(value = "配电容量")
    @Property(name = "distributionCapacity")
    private double distributionCapacity;

    @ApiModelProperty(value = "报价")
    @Property(name = "quote")
    private double quote;

    @ApiModelProperty(value = "底价")
    @Property(name = "basePrice")
    private double basePrice;

    @ApiModelProperty(value = "特价")
    @Property(name = "specialPrice")
    private double specialPrice;

    @ApiModelProperty(value = "房源照片")
    @Property(name = "officePhoto")
    private String officePhoto;

    @ApiModelProperty(value = "房源VR")
    @Property(name = "officeVR")
    private String officeVR;

    @ApiModelProperty(value = "房源介绍")
    @Property(name = "officeIntroduction")
    private String officeIntroduction;

    @ApiModelProperty(value = "入驻公司名称")
    @Property(name = "companyName")
    private String companyName;

    @ApiModelProperty(value = "入驻公司id")
    @Property(name = "settledCompanyId")
    private Long settledCompanyId;

    @ApiModelProperty(value = "客户信息id")
    @Property(name = "customerId")
    private Long customerId;

    @ApiModelProperty(value = "企业id",required = false)
    @Property(name = "companyId")
    private Long companyId;

    @ApiModelProperty(value = "真实园区id")
    @Property(name = "realStationId")
    private Long realStationId;

    @ApiModelProperty(value = "入驻时间",required = false)
    @Property
    private String leaseTime;

    @ApiModelProperty(value = "租赁价格",required = false)
    @Property
    private String leasePrice;

    @ApiModelProperty(value = "租赁期限",required = false)
    @Property
    private String leaseDueTime;

    //是否即将离场 1表示是 2 否
    private String statusFlag="2";

    private boolean disabled = false;

    @Property
    private String sn;

    @Property
    private String createTime;

    @Property
    private String updateTime;

    /**
     * 导出次数
     */
    @Property
    private int exportCount = 0;

    /**
     * 导出人id
     */
    @Property
    private Long exportPeople;

    public boolean isDisabled() {
        return disabled;
    }

    public void setDisabled(boolean disabled) {
        this.disabled = disabled;
    }

    public String getStatusFlag() {
        return statusFlag;
    }

    public void setStatusFlag(String statusFlag) {
        this.statusFlag = statusFlag;
    }

    public String getSn() {
        return sn;
    }

    public void setSn(String sn) {
        this.sn = sn;
    }

    public String getCreateTime() {
        return createTime;
    }

    public void setCreateTime(String createTime) {
        this.createTime = createTime;
    }

    public String getUpdateTime() {
        return updateTime;
    }

    public void setUpdateTime(String updateTime) {
        this.updateTime = DateTimeUtils.format(new Date());
    }

    public Long getId() {
        return id;
    }

    public void setId(Long id) {
        this.id = id;
    }

    public Long getBuildingNumber() {
        return buildingNumber;
    }

    public void setBuildingNumber(Long buildingNumber) {
        this.buildingNumber = buildingNumber;
    }

    public String getOfficeName() {
        return officeName;
    }

    public void setOfficeName(String officeName) {
        this.officeName = officeName;
    }

    public String getOfficeTitle() {
        return officeTitle;
    }

    public void setOfficeTitle(String officeTitle) {
        this.officeTitle = officeTitle;
    }

    public String getLeaseTime() {
        return leaseTime;
    }

    public void setLeaseTime(String leaseTime) {
        this.leaseTime = leaseTime;
    }

    public String getLeasePrice() {
        return leasePrice;
    }

    public void setLeasePrice(String leasePrice) {
        this.leasePrice = leasePrice;
    }

    public String getLeaseDueTime() {
        return leaseDueTime;
    }

    public void setLeaseDueTime(String leaseDueTime) {
        this.leaseDueTime = leaseDueTime;
    }

    public String getOfficeStatus() {
        return officeStatus;
    }

    public void setOfficeStatus(String officeStatus) {
        this.officeStatus = officeStatus;
    }

    public String getOfficeStatusTitle() {
        return officeStatusTitle;
    }

    public void setOfficeStatusTitle(String officeStatusTitle) {
        this.officeStatusTitle = officeStatusTitle;
    }

    public String getRegion() {
        return region;
    }

    public void setRegion(String region) {
        this.region = region;
    }

    public String getRegionTitle() {
        return regionTitle;
    }

    public void setRegionTitle(String regionTitle) {
        this.regionTitle = regionTitle;
    }

    public String getRegionPark() {
        return regionPark;
    }

    public void setRegionPark(String regionPark) {
        this.regionPark = regionPark;
    }

    public double getOfficeArea() {
        return officeArea;
    }

    public void setOfficeArea(double officeArea) {
        this.officeArea = officeArea;
    }

    public double getFactoryArea() {
        return factoryArea;
    }

    public void setFactoryArea(double factoryArea) {
        this.factoryArea = factoryArea;
    }

    public double getWorkArea() {
        return workArea;
    }

    public void setWorkArea(double workArea) {
        this.workArea = workArea;
    }

    public double getOfficeGuardArea() {
        return officeGuardArea;
    }

    public void setOfficeGuardArea(double officeGuardArea) {
        this.officeGuardArea = officeGuardArea;
    }

    public double getBlankArea() {
        return blankArea;
    }

    public void setBlankArea(double blankArea) {
        this.blankArea = blankArea;
    }

    public String getOfficeType() {
        return officeType;
    }

    public void setOfficeType(String officeType) {
        this.officeType = officeType;
    }

    public String getOfficeTypeTitle() {
        return officeTypeTitle;
    }

    public void setOfficeTypeTitle(String officeTypeTitle) {
        this.officeTypeTitle = officeTypeTitle;
    }

    public double getBlankQuote() {
        return blankQuote;
    }

    public void setBlankQuote(double blankQuote) {
        this.blankQuote = blankQuote;
    }

    public String getOfficeRecordNo() {
        return officeRecordNo;
    }

    public void setOfficeRecordNo(String officeRecordNo) {
        this.officeRecordNo = officeRecordNo;
    }

    public String getDecoration() {
        return decoration;
    }

    public void setDecoration(String decoration) {
        this.decoration = decoration;
    }

    public String getDecorationTitle() {
        return decorationTitle;
    }

    public void setDecorationTitle(String decorationTitle) {
        this.decorationTitle = decorationTitle;
    }

    public double getQuote() {
        return quote;
    }

    public void setQuote(double quote) {
        this.quote = quote;
    }

    public double getBasePrice() {
        return basePrice;
    }

    public void setBasePrice(double basePrice) {
        this.basePrice = basePrice;
    }

    public double getSpecialPrice() {
        return specialPrice;
    }

    public void setSpecialPrice(double specialPrice) {
        this.specialPrice = specialPrice;
    }

    public String getOfficePhoto() {
        return officePhoto;
    }

    public void setOfficePhoto(String officePhoto) {
        this.officePhoto = officePhoto;
    }

    public String getOfficeVR() {
        return officeVR;
    }

    public void setOfficeVR(String officeVR) {
        this.officeVR = officeVR;
    }

    public String getOfficeIntroduction() {
        return officeIntroduction;
    }

    public void setOfficeIntroduction(String officeIntroduction) {
        this.officeIntroduction = officeIntroduction;
    }

    public String getCompanyName() {
        return companyName;
    }

    public void setCompanyName(String companyName) {
        this.companyName = companyName;
    }

    public Long getSettledCompanyId() {
        return settledCompanyId;
    }

    public void setSettledCompanyId(Long settledCompanyId) {
        this.settledCompanyId = settledCompanyId;
    }

    public Long getCustomerId() {
        return customerId;
    }

    public void setCustomerId(Long customerId) {
        this.customerId = customerId;
    }

    public Long getCompanyId() {
        return companyId;
    }

    public void setCompanyId(Long companyId) {
        this.companyId = companyId;
    }

    public Long getRealStationId() {
        return realStationId;
    }

    public void setRealStationId(Long realStationId) {
        this.realStationId = realStationId;
    }

    @Override
    public int compareTo(Office o) {
        return 0;
    }

    public int getExportCount() {
        return exportCount;
    }

    public void setExportCount(int exportCount) {
        this.exportCount = exportCount;
    }

    public Long getExportPeople() {
        return exportPeople;
    }

    public void setExportPeople(Long exportPeople) {
        this.exportPeople = exportPeople;
    }

    public String getHousingType() {
        return housingType;
    }

    public void setHousingType(String housingType) {
        this.housingType = housingType;
    }

    public String getHousingTypeTitle() {
        return housingTypeTitle;
    }

    public void setHousingTypeTitle(String housingTypeTitle) {
        this.housingTypeTitle = housingTypeTitle;
    }

    /*public double getBusinessArea() {
        return businessArea;
    }

    public void setBusinessArea(double businessArea) {
        this.businessArea = businessArea;
    }

    public double getApartmentArea() {
        return apartmentArea;
    }

    public void setApartmentArea(double apartmentArea) {
        this.apartmentArea = apartmentArea;
    }

    public double getRentalArea() {
        return rentalArea;
    }

    public void setRentalArea(double rentalArea) {
        this.rentalArea = rentalArea;
    }*/

    public String getOfficeFloorCount() {
        return officeFloorCount;
    }

    public void setOfficeFloorCount(String officeFloorCount) {
        this.officeFloorCount = officeFloorCount;
    }

    public String getOfficeFloorCountTitle() {
        return officeFloorCountTitle;
    }

    public void setOfficeFloorCountTitle(String officeFloorCountTitle) {
        this.officeFloorCountTitle = officeFloorCountTitle;
    }

    public double getOfficeFloorHeight() {
        return officeFloorHeight;
    }

    public void setOfficeFloorHeight(double officeFloorHeight) {
        this.officeFloorHeight = officeFloorHeight;
    }

    public int getOfficeFloor() {
        return officeFloor;
    }

    public void setOfficeFloor(int officeFloor) {
        this.officeFloor = officeFloor;
    }

    public String getOfficeFloorCount2() {
        return officeFloorCount2;
    }

    public void setOfficeFloorCount2(String officeFloorCount2) {
        this.officeFloorCount2 = officeFloorCount2;
    }

    public String getOfficeFloorCount2Title() {
        return officeFloorCount2Title;
    }

    public void setOfficeFloorCount2Title(String officeFloorCount2Title) {
        this.officeFloorCount2Title = officeFloorCount2Title;
    }

    public double getOfficeFloorHeight2() {
        return officeFloorHeight2;
    }

    public void setOfficeFloorHeight2(double officeFloorHeight2) {
        this.officeFloorHeight2 = officeFloorHeight2;
    }

    public int getOfficeFloor2() {
        return officeFloor2;
    }

    public void setOfficeFloor2(int officeFloor2) {
        this.officeFloor2 = officeFloor2;
    }

    public double getMarketReferencePrice() {
        return marketReferencePrice;
    }

    public void setMarketReferencePrice(double marketReferencePrice) {
        this.marketReferencePrice = marketReferencePrice;
    }

    public double getBlankReferencePrice() {
        return blankReferencePrice;
    }

    public void setBlankReferencePrice(double blankReferencePrice) {
        this.blankReferencePrice = blankReferencePrice;
    }

    public double getDistributionCapacity() {
        return distributionCapacity;
    }

    public void setDistributionCapacity(double distributionCapacity) {
        this.distributionCapacity = distributionCapacity;
    }
}
